@file:Suppress("SpellCheckingInspection")

package com.example.piece.net

import com.example.piece.entity.*
import com.example.base.entity.Rest
import okhttp3.RequestBody
import retrofit2.http.*

/**  接口聚合  **/
interface ApiService {

    /************************************************ APP首页接口***************************************/

    /**  登陆  **/
    @POST("user/login")
    suspend fun login(
        @Query("username") username: String,
        @Query("password") password: String
    ): Rest<User>

    /**  退出登陆  **/
    @POST("user/loginOff")
    // @Header("Authorization") token: String
    suspend fun logout(): Rest<Unit>

    /**
     * 1
     * 获取主页的推荐关注数据
     * 获取被推荐关注的用户
     * @see List<RecommendEntity>
     * @see RecommendEntity
     * **/
    @POST("home/attention/recommend")
    suspend fun recommend(): Rest<List<RecommendEntity>>


    /**
     * 2
     * 获取关注的用户发布的段子列表
     *  获取关注用户发布的段子信息
     * @param page 页数
     *
     * @see List<AttentionEntity>
     * @see AttentionEntity
     */
    @FormUrlEncoded
    @POST("home/attention/list")
    suspend fun attentionList(
        @Field("page") page: String
    ): Rest<List<AttentionEntity>>

    /**
     * 3
     * 搜索段子
     * @param keyword 搜索的关键字
     * @param page 页数
     *
     * @see  List<AttentionEntity>
     * @see AttentionEntity
     */
    @FormUrlEncoded
    @POST("home/jokes/search")
    suspend fun jokesSearch(
        @Field("keyword") keyword: String,
        @Field("page") page: String
    ): Rest<List<AttentionEntity>>

    /**
     * 4
     * 获取主页的最新列表数据
     * 获取最新列表数据
     * @see List<AttentionEntity>
     * @see AttentionEntity
     */
    @POST("home/latest")
    suspend fun homeLatest(): Rest<List<AttentionEntity>>

    /**
     * 5
     * 获取主页的纯图片列表数据
     * 获取纯图片数据
     * @seeList<AttentionEntity>
     * @see AttentionEntity
     */
    @POST("home/pic")
    suspend fun homePic(): Rest<List<AttentionEntity>>

    /**
     * 6
     * 获取主页的推荐列表数据
     * 或者主页推荐数据
     * @see List<AttentionEntity>
     * @see AttentionEntity
     */
    @POST("home/recommend")
    suspend fun homeRecommend(): Rest<List<AttentionEntity>>

    /**
     * 7
     * 获取主页的纯文列表数据
     * 获取纯文本信息
     * @see List<AttentionEntity>
     * @see AttentionEntity
     */
    @POST("home/text")
    suspend fun homeText(): Rest<List<AttentionEntity>>

    /************************************************ 工具Helper接口***************************************/

    /** 1
     * 意见反馈
     * @param brand 设备品牌
     * @param contact 联系方式
     * @param content 反馈的内容
     * @param pics 图片链接，多图用,分割，图片请先上传至七牛云
     * @param product 设备型号
     * @param release_version 系统版本号
     * @param version_code 当前版本code
     * @param version_name 当前版本号
     *
     * @see Unit
     */
    @FormUrlEncoded
    @POST("helper/feedback")
    suspend fun helperFeedback(
        @Field("brand") brand: String,
        @Field("contact") contact: String,
        @Field("content") content: String,
        @Field("pics") pics: String,
        @Field("product") product: String,
        @Field("release_version") release_version: String,
        @Field("version_code") version_code: String,
        @Field("version_name") version_name: String
    ): Rest<Unit>


    /**
     * 2
     * 获取热搜关键词
     * @see  List<String>
     */
    @POST("helper/hot_search")
    suspend fun helperHotSearch(): Rest<List<String>>


    /**
     * 3
     * 获取jokes分享的内容
     *  @param id 被分享的段子id
     *  @see HelperJokeShareEntity
     */
    @FormUrlEncoded
    @POST("helper/joke/share")
    suspend fun helperJokeShare(
        @Field("id") id: String
    ): Rest<HelperJokeShareEntity>

    /**
     * 4
     * 段子分享成功计数
     * @param id 被分享的段子id
     * 分享段子成功之后需要调用此接口进行计数
     * @see Unit
     */
    @FormUrlEncoded
    @POST("helper/joke/share/count")
    suspend fun helperJokeShareCount(
        @Field("id") id: String
    ): Rest<Unit>

    /**
     * 5
     * 获取七牛云token
     * 上传头像或者上传图片段子或者上传视频段子之前需要获取七牛云的token
     * @param filename  文件名称，要带后缀
     * @param type     类型 type 0 获取普通token type 1 获取头像token
     * @see  HelperQiniuTokenEntity
     */
    @FormUrlEncoded
    @POST("helper/qiniu/token")
    suspend fun helperQiniuToken(
        @Field("filename") filename: String,
        @Field("type") type: String
    ): Rest<HelperQiniuTokenEntity>


    /**
     * 6
     * 获取qq群信息
     *获取添加qq群的信息
     * @see HelperQQserviceEntity
     */
    @POST("helper/qq_service")
    suspend fun helperQQservice(): Rest<HelperQQserviceEntity>

    /**
     * 7
     * 举报内容
     * 举报用户或者举报段子
     * @param content 举报的内容
     * @param report_tips  举报描述信息，预置的选择项
     * @param target_id  0 段子id 1 用户id
     * @param type  0 举报段子 1 举报用户
     * @see Unit
     */
    @FormUrlEncoded
    @POST("helper/report")
    suspend fun helperJokeShareCount(
        @Field("content") content: String,
        @Field("report_tips") report_tips: String,
        @Field("target_id") target_id: String,
        @Field("type") type: String
    ): Rest<Unit>


    /**
     * 8
     * 获取分享用户的内容
     *@see HelperJokeShareEntity
     */
    @POST("helper/user/share")
    suspend fun helperUserShare(): Rest<HelperJokeShareEntity>

    /************************************************ 23段子相关接口 ***************************************/
    /**
     * 1
     * 获取审核列表
     * 需要登录，可以查询你正在审核或者审核失败的段子信息列表
     * @param status 状态 0 审核中 1 审核失败
     * @param page  分页,示例值(1)
     * @see List<AttentionEntity>
     * @see AttentionEntity
     */
    @FormUrlEncoded
    @POST("jokes/audit/list")
    suspend fun jokesAuditList(
        @Field("status") status: String,
        @Field("page") page: String
    ): Rest<List<AttentionEntity>>

    /**
     * 2
     * 收藏内容-取消收藏
     * @param jokeId 段子id
     * @param status  true 收藏 false 取消收藏
     * @see   Unit
     */
    @FormUrlEncoded
    @POST("jokes/collect")
    suspend fun jokesCollect(
        @Field("jokeId") jokeId: String,
        @Field("status") status: String
    ): Rest<Unit>

    /**
     * 3
     * 评论段子,一级评论
     * 需要登录，评论成功之后会返回当前你评论的信息，你可以拿到这个信息插入到列表指定位置
     * @param jokeId 段子id
     * @param content  评论的内容
     * @see  JokesCommentEntity
     */
    @FormUrlEncoded
    @POST("jokes/comment")
    suspend fun jokesComment(
        @Field("jokeId") jokeId: String,
        @Field("content") content: String
    ): Rest<JokesCommentEntity>

    /**
     * 4
     * 删除主评论
     * 需要登录
     * @param commentId 评论id
     * @see  Unit
     */
    @FormUrlEncoded
    @POST("jokes/comment/delete")
    suspend fun jokesCommentDelete(
        @Field("commentId") commentId: String
    ): Rest<Unit>

    /**
     * 5
     * 添加子评论
     * 需要登录
     * @param commentId  主评论id
     * @param content   评论 内容
     * @param isReplyChild    是否是回复子评论,示例值(false)
     * @see JokesItemCommentListEntity
     */
    @FormUrlEncoded
    @POST("jokes/comment/item")
    suspend fun jokesCommentItem(
        @Field("commentId") commentId: String,
        @Field("content") content: String,
        @Field("isReplyChild") isReplyChild: Boolean
    ): Rest<JokesItemCommentListEntity>


    /**
     * 6
     * 删除子评论
     * 需要登录
     * @param commentId  主评论id
     *@see Unit
     */
    @FormUrlEncoded
    @POST("jokes/comment/item/delete")
    suspend fun jokesCommentItemDelete(
        @Field("commentId") commentId: String
    ): Rest<Unit>

    /**
     * 7
     * 评论 点赞-取消点赞
     * 需要登录
     * @param commentId  主评论id
     *@param status    true 点赞 false 取消点赞
     * @see Unit
     */
    @FormUrlEncoded
    @POST("jokes/comment/like")
    suspend fun jokesCommentLike(
        @Field("commentId") commentId: String,
        @Field("status") status: String
    ): Rest<Unit>

    /**
     * 8
     * 获取评论列表
     * @param jokeId  段子id
     *@param page    分页,示例值(1)
     * @see JokesCommentListEntity
     */
    @FormUrlEncoded
    @POST("jokes/comment/list")
    suspend fun jokesCommentList(
        @Field("jokeId") jokeId: String,
        @Field("page") page: String
    ): Rest<JokesCommentListEntity>

    /**
     * 9
     * 获取子评论列表
     * @param commentId  主评论id
     *@param page    分页,示例值(1)
     * @see JokesItemCommentListEntity
     */
    @FormUrlEncoded
    @POST("jokes/comment/list/item")
    suspend fun jokesCommentListItem(
        @Field("commentId") commentId: String,
        @Field("page") page: String
    ): Rest<JokesItemCommentListEntity>


    /**
     * 10
     * 删除jokes
     * 删除段子
     * @param jokeId      段子id
     * @see Unit
     */
    @FormUrlEncoded
    @POST("jokes/delete")
    suspend fun jokesDelete(
        @Field("jokeId") jokeId: String
    ): Rest<Unit>

    /**
     * 11
     * 获取收藏状态
     * 用于分享弹窗中显示是否收藏
     * @param jokeId      段子id
     * @see JokesIsCollectEntity
     */
    @FormUrlEncoded
    @POST("jokes/is_collect")
    suspend fun jokesIsCollect(
        @Field("jokeId") jokeId: String
    ): Rest<JokesIsCollectEntity>

    /**
     * 12
     * 给段子点赞-取消点赞
     * 需要登录
     * @param id      段子id
     * @param status      true为点赞 false为取消点赞
     * @see Unit

     */
    @FormUrlEncoded
    @POST("jokes/like")
    suspend fun jokesLike(
        @Field("id") id: String,
        @Field("status") status: String

    ): Rest<Unit>

    /**
     * 13
     * 获取指定id的段子的点赞列表
     * @param jokeId      段子id
     * @param page      分页,示例值(1)
     * @see List<JokesLikeListEntity>
     * @see JokesLikeListEntity

     */
    @FormUrlEncoded
    @POST("jokes/like/list")
    suspend fun jokesLikeList(
        @Field("jokeId") jokeId: String,
        @Field("page") page: String

    ): Rest<List<JokesLikeListEntity>>

    /**
     * 14
     * 发布段子
     * 需要登录，无论是图片还是视频，都需要上传到七牛云之后拿到接口返回的地址，地址是不带域名的请注意
     * @param content      内容
     * @param image_size      图片尺寸，例如1080x2400，如果是多图，则需要拼接所有的图片尺寸，中间用,分割，比如 480x800,1080x900
     * @param image_urls          如果type为2 此值代表图片列表，中间用,分割
     * @param type      发布类型 1 文本 2 图片 3 视频
     * @param video_duration      视频播放时长
     * @param video_size          视频尺寸 1080x720
     * @param video_thumbnail_url     视频封面
     * @param video_url     视频url，先上传到七牛云之后拿到key
     * @see Unit

     */
    @FormUrlEncoded
    @POST("jokes/post")
    suspend fun jokesPost(
        @Field("content") content: String,
        @Field("image_size") image_size: String,
        @Field("image_urls") image_urls: String,
        @Field("type") type: String,
        @Field("video_duration") video_duration: String,
        @Field("video_size") video_size: String,
        @Field("video_thumbnail_url") video_thumbnail_url: String,
        @Field("video_url") video_url: String

    ): Rest<Unit>

    /**
     * 15
     * 获取指定id的段子
     * @param jokeId      段子id
     * @see AttentionEntity

     */
    @FormUrlEncoded
    @POST("jokes/target")
    suspend fun jokesTarget(
        @Field("jokeId") jokeId: String

    ): Rest<AttentionEntity>

    /**
     * 16
     * 获取指定用户喜欢的图文段子列表
     * @param targetUserId      用户id
     * @param page 分页,示例值(1)
     * @see List<AttentionEntity>
     * @see  AttentionEntity

     */
    @FormUrlEncoded
    @POST("jokes/text_pic_jokes/like/list")
    suspend fun jokesTextPicJokesLikeList(
        @Field("targetUserId") targetUserId: String,
        @Field("page") page: String

    ): Rest<List<AttentionEntity>>

    /**
     * 17
     * 获取指定用户图文段子列表
     * @param targetUserId      用户id
     * @param page 分页,示例值(1)
     * @see List<AttentionEntity>
     * @see AttentionEntity
     *

     */
    @FormUrlEncoded
    @POST("jokes/text_pic_jokes/list")
    suspend fun jokesTextPicJokesList(
        @Field("targetUserId") targetUserId: String,
        @Field("page") page: String

    ): Rest<List<AttentionEntity>>

    /**
     * 18
     * 踩段子-取消踩段子
     * 需要登录
     * @param id      段子id
     * @param status true为踩 false为取消踩
     * @see Unit
     *
     *

     */
    @FormUrlEncoded
    @POST("jokes/unlike")
    suspend fun jokesUnlike(
        @Field("id") id: String,
        @Field("status") status: String

    ): Rest<Unit>

    /**
     * 19
     * 获取指定用户喜欢的视频列表
     * @param targetUserId      用户id
     * @param page 分页,示例值(1)
     * @see List<JokesVideoLikeListEntity>
     * @see JokesVideoLikeListEntity

     */
    @FormUrlEncoded
    @POST("jokes/video/like/list")
    suspend fun jokesVideoLikeList(
        @Field("targetUserId") targetUserId: String,
        @Field("page") page: String

    ): Rest<List<JokesVideoLikeListEntity>>

    /**
     * 20
     * 获取指定用户所有视频列表
     * @param targetUserId      用户id
     * @param page 分页,示例值(1)
     *
     * @see List<JokesVideoLikeListEntity>
     * @see JokesVideoLikeListEntity
     *

     */
    @FormUrlEncoded
    @POST("jokes/video/list")
    suspend fun jokesVideoList(
        @Field("targetUserId") targetUserId: String,
        @Field("page") page: String

    ): Rest<List<JokesVideoLikeListEntity>>

    /**
     * 21
     * 获取指定id对应视频列表
     * @param ids      段子id列表，中间用,分割
     * @see List<AttentionEntity>
     * @see AttentionEntity

     */
    @FormUrlEncoded
    @POST("jokes/video/list/ids")
    suspend fun jokesVideoListIds(
        @Field("ids") ids: String
    ): Rest<List<AttentionEntity>>

    /**
     * 22
     * 获取指定用户喜欢的段子列表
     * @param targetUserId      用户id
     * @param page 分页,示例值(1)
     * @see  List<AttentionEntity>
     * @see    AttentionEntity

     */
    @FormUrlEncoded
    @POST("jokes/whole_jokes/like/list")
    suspend fun jokesWholeJokesLikeList(
        @Field("targetUserId") targetUserId: String,
        @Field("page") page: String

    ): Rest<List<AttentionEntity>>

    /**
     * 23
     * 获取指定用户段子列表
     * @param targetUserId      用户id
     * @param page 分页,示例值(1)
     * @see List<AttentionEntity>
     * @see AttentionEntity
     */
    @FormUrlEncoded
    @POST("jokes/whole_jokes/list")
    suspend fun jokesWholeJokesList(
        @Field("targetUserId") targetUserId: String,
        @Field("page") page: String

    ): Rest<List<AttentionEntity>>

    /************************************************ 用户相关接口 ***************************************/

    /**
     *             1
     * 用户关注
     *
     * @param status      status 1 关注 0 取消关注
     * @param userId 用户id
     *
     * @see Unit
     */
    @FormUrlEncoded
    @POST("user/attention")
    suspend fun userAttention(
        @Field("status") status: String,
        @Field("userId") userId: String

    ): Rest<Unit>


    /**
     *               2
     * 获取指定用户关注列表
     * 需要登录
     *
     * @param page     分页
     * @param targetUserId 用户id
     * @see List<UserAttentionListEntity>
     * @see UserAttentionListEntity
     */
    @FormUrlEncoded
    @POST("user/attention/list")
    suspend fun userAttentionList(
        @Field("page") page: String,
        @Field("targetUserId") targetUserId: String

    ): Rest<List<UserAttentionListEntity>>

    /**
     *              3
     * 绑定邀请码
     * 需要登录
     *
     * @param code     邀请码
     *
     * @see Unit
     */
    @FormUrlEncoded
    @POST("user/bind/invite")
    suspend fun userBindInvite(
        @Field("code") code: String
    ): Rest<Unit>

    /**
     *                 4
     * 检查视频下载权限
     * 视频下载之前调用接口检查权限
     * @see UserCheckPermissionDownloadEntity
     */
    @POST("user/check/permission/download")
    suspend fun userCheckPermissionDownload(): Rest<UserCheckPermissionDownloadEntity>

    /**
     * 5
     * 注销账户
     * 需要登录
     *
     * @param psw     登录密码
     *
     * @see Unit
     */
    @FormUrlEncoded
    @POST("user/close_account")
    suspend fun userCloseAccount(
        @Field("psw") psw: String
    ): Rest<Unit>

    /**
     * 6
     * 获取当前登录用户收藏列表
     * 需要登录
     *
     * @param page     分页
     * @see List<AttentionEntity>
     * @see AttentionEntity
     */
    @FormUrlEncoded
    @POST("user/collect/list")
    suspend fun userCollectList(
        @Field("page") page: String
    ): Rest<List<AttentionEntity>>

    /**
     * 7
     * 获取指定用户的评论列表
     * 需要登录
     *
     * @param page     分页
     * @see List<UserCommentListEntity>
     * @see UserCommentListEntity

     */
    @FormUrlEncoded
    @POST("user/comment/list")
    suspend fun userCommentList(
        @Field("page") page: String
    ): Rest<List<UserCommentListEntity>>

    /**
     * 8
     * 获取指定用户粉丝列表
     * 需要登录
     *
     * @param page     分页
     * @param targetUserId  用户id
     * @see List<UserAttentionListEntity>
     * @see  UserAttentionListEntity
     */
    @FormUrlEncoded
    @POST("user/fans/list")
    suspend fun userFansList(
        @Field("page") page: String,
        @Field("targetUserId") targetUserId: String

    ): Rest<List<UserAttentionListEntity>>

    /**
     * 9
     * 获取用户信息
     * 需要登录
     *@see UserInfoEntity
     */
    @POST("user/info")
    suspend fun userInfo(): Rest<UserInfoEntity>

    /**
     * 10
     * 获取指定用户的信息
     * 需要登录
     *
     * @param targetUserId     目标用户id
     * @see UserInfoTargetEntity

     */
    @FormUrlEncoded
    @POST("user/info/target")
    suspend fun userInfoTarget(
        @Field("targetUserId") targetUserId: String
    ): Rest<UserInfoTargetEntity>

    /**
     * 11
     * 更新用户信息
     * 需要登录
     *
     * @param content     更新的内容
     * @param type  更新的类目 0 修改头像 先上传到七牛云 1 修改昵称 2 修改签名 3 修改性别 4 修改生日
     * @see Unit
     */
    @FormUrlEncoded
    @POST("user/info/update")
    suspend fun userInfoUpdate(
        @Field("content") content: String,
        @Field("type") type: String

    ): Rest<Unit>

    /**
     * 12
     * 获取当前用户帖子列表
     * 需要登录
     *
     * @param page     分页
     *
     * @see List<AttentionEntity>
     * @see AttentionEntity
     */
    @FormUrlEncoded
    @POST("user/jokes/list")
    suspend fun userJokesList(
        @Field("page") page: String
    ): Rest<List<AttentionEntity>>

    /**
     * 13
     * 获取当前用户积分详情
     * 需要登录
     *@see UserLedouInfoEntity
     */
    @POST("user/ledou/info")
    suspend fun userLedouInfo(): Rest<UserLedouInfoEntity>

    /**
     * 14
     * 获取当前用户积分详情列表
     * 需要登录
     *
     * @param page     分页
     * @see List<UserLedouListEntity>
     * @see UserLedouListEntity
     */
    @FormUrlEncoded
    @POST("user/ledou/list")
    suspend fun userLedouList(
        @Field("page") page: String
    ): Rest<List<UserLedouListEntity>>

    /**
     * 15
     * 当前用户抽奖
     * 需要登录
     *@see Unit
     */
    @POST("user/ledou/lottery")
    suspend fun userLedouLottery(): Rest<Unit>

    /**
     * 16
     * 当前用户抽奖列表
     * 需要登录
     *
     * @param page     分页
     * @see List<UserLedouListEntity>
     * @see UserLedouListEntity
     */
    @FormUrlEncoded
    @POST("user/ledou/lottery/list")
    suspend fun userLedouLotteryList(
        @Field("page") page: String
    ): Rest<List<UserLedouListEntity>>

    /**
     * 17
     * 获取当前登录用户点赞列表
     * 需要登录
     *
     * @param page     分页
     *
     * @see List<AttentionEntity>
     * @see AttentionEntity
     */
    @FormUrlEncoded
    @POST("user/like/list")
    suspend fun userLikeList(
        @Field("page") page: String
    ): Rest<List<AttentionEntity>>

    /**
     * 18
     * 验证码登录
     *
     * @param code     验证码
     * @param phone     手机号
     * @see UserLoginCodeEntity
     */
    @FormUrlEncoded
    @POST("user/login/code")
    suspend fun userLoginCode(
        @Field("code") code: String,
        @Field("phone") phone: String

    ): Rest<UserLoginCodeEntity>

    /**
     * 19
     * 获取登录验证码
     *不会真实发送验证码，如需发送真实环境下的验证码，请联系管理员开通
     * @param phone     手机号
     * @see Unit
     */
    @FormUrlEncoded
    @POST("user/login/get_code")
    suspend fun userLoginGetCode(
        @Field("phone") phone: String

    ): Rest<Unit>

    /**
     * 20
     * 账号密码登录
     *
     * @param psw     密码 无需加密，后台加密
     * @param phone     手机号
     * @see UserLoginCodeEntity
     */
    @FormUrlEncoded
    @POST("user/login/psw")
    suspend fun userLoginPsw(
        @Field("psw") psw: String,
        @Field("phone") phone: String

    ): Rest<UserLoginCodeEntity>


    /**
     * 21
     * 获取指定用户的消息列表
     *
     * @param page     分页
     * @param type     type=0 赞 type=1 评论 type=2 关注
     * @see List<UserCommentListEntity>
     * @see UserCommentListEntity
     */
    @FormUrlEncoded
    @POST("user/message/list")
    suspend fun userMessageList(
        @Field("page") page: String,
        @Field("type") type: String

    ): Rest<List<UserCommentListEntity>>

    /**
     * 22
     * 获取系统消息列表
     *
     * @param page     分页
     * @see List<UserMessageSystemEntity>
     * @see UserMessageSystemEntity
     */
    @FormUrlEncoded
    @POST("user/message/system")
    suspend fun userMessageSystem(
        @Field("page") page: String,

        ): Rest<List<UserMessageSystemEntity>>

    /**
     * 23
     * 获取当前用户的未读消息数
     * 需要登录
     *@see UserMessageUnreadEntity
     */
    @POST("user/message/unread")
    suspend fun userMessageUnread(): Rest<UserMessageUnreadEntity>


    /**
     * 24
     * 修改密码
     *需要登录，修改成功之后请让用户重新走登录流程
     * @param old_psw     旧密码
     * @param password     新密码
     * @param new_psw     new_psw
     * @see Unit
     */
    @FormUrlEncoded
    @POST("user/psw/change")
    suspend fun userPswChange(
        @Field("old_psw") old_psw: String,
        @Field("password") password: String,
        @Field("new_psw") new_psw: String

    ): Rest<Unit>

    /**
     * 25
     * 重置密码
     *密码明文传输，后台加密
     * @param code     验证码
     * @param password     新密码
     * @param phone     手机号
     * @see Unit
     */
    @FormUrlEncoded
    @POST("user/psw/reset")
    suspend fun userPswReset(
        @Field("code") code: String,
        @Field("password") password: String,
        @Field("phone") phone: String

    ): Rest<Unit>

    /**
     * 26
     * 重置密码获取验证码
     *不会真实发送验证码，如需发送真实环境下的验证码，请联系管理员开通
     * @param phone     手机号
     * @see Unit
     */
    @FormUrlEncoded
    @POST("user/psw/reset/get_code")
    suspend fun userPswResetGetCode(
        @Field("phone") phone: String

    ): Rest<Unit>

    /**
     * 27
     * 搜索用户
     * @param keyword     关键字
     * @param page     分页
     * @see List<AttentionUserEntity>
     * @see  AttentionUserEntity
     */
    @FormUrlEncoded
    @POST("user/search")
    suspend fun userSearch(
        @Field("keyword") keyword: String,
        @Field("page") page: String


    ): Rest<List<AttentionUserEntity>>

    /**
     * 28
     * 当前用户签到
     * 需要登录
     *@see UserSigninEntity
     */
    @POST("user/signin")
    suspend fun userSignin(): Rest<UserSigninEntity>

    /************************************************ 首页仿抖音列表 ***************************************/
    /**
     *             1
     * 获取划一划页面的推荐列表数据
     * 此接口没有分页，当你快要滑到底部的时候再次调用此接口即可，后端会做过滤操作
     * @see List<AttentionEntity>
     * @see AttentionEntity

     */
    @POST("douyin/list")
    suspend fun douYinList(): Rest<List<AttentionEntity>>
}